home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1998 January: Mac OS SDK / Dev.CD Jan 98 SDK1.toast / Development Kits (Disc 1) / Interfaces&Libraries / Universal / Interfaces / AIncludes / QuickTimeVRFormat.a < prev    next >
Encoding:
Text File  |  1997-08-12  |  14.8 KB  |  413 lines  |  [TEXT/MPS ]

  1. ;
  2. ;    File:        QuickTimeVRFormat.a
  3. ;
  4. ;    Contains:    QuickTime VR interfaces
  5. ;
  6. ;    Version:    Technology:    QuickTime VR 2.0.1
  7. ;                Release:    Universal Interfaces 3.0.1
  8. ;
  9. ;    Copyright:    © 1997 by Apple Computer, Inc., all rights reserved.
  10. ;
  11. ;    Bugs?:        Please include the the file and version information (from above) with
  12. ;                the problem description.  Developers belonging to one of the Apple
  13. ;                developer programs can submit bug reports to:
  14. ;
  15. ;                    devsupport@apple.com
  16. ;
  17. ;
  18.     IF &TYPE('__QUICKTIMEVRFORMAT__') = 'UNDEFINED' THEN
  19. __QUICKTIMEVRFORMAT__ SET 1
  20.  
  21.     IF &TYPE('__CONDITIONALMACROS__') = 'UNDEFINED' THEN
  22.     include 'ConditionalMacros.a'
  23.     ENDIF
  24.     IF &TYPE('__DIALOGS__') = 'UNDEFINED' THEN
  25.     include 'Dialogs.a'
  26.     ENDIF
  27.     IF &TYPE('__MOVIES__') = 'UNDEFINED' THEN
  28.     include 'Movies.a'
  29.     ENDIF
  30.     IF &TYPE('__QUICKTIMEVR__') = 'UNDEFINED' THEN
  31.     include 'QuickTimeVR.a'
  32.     ENDIF
  33.  
  34. ;  User data type for the Movie Controller type specifier
  35.  
  36. kQTControllerType                EQU        'ctyp'                ; Atom & ID of where our
  37. kQTControllerID                    EQU        1                    ; … controller name is stored
  38. ;  VRWorld atom types
  39.  
  40. kQTVRWorldHeaderAtomType        EQU        'vrsc'
  41. kQTVRImagingParentAtomType        EQU        'imgp'
  42. kQTVRPanoImagingAtomType        EQU        'impn'
  43. kQTVRObjectImagingAtomType        EQU        'imob'
  44. kQTVRNodeParentAtomType            EQU        'vrnp'
  45. kQTVRNodeIDAtomType                EQU        'vrni'
  46. kQTVRNodeLocationAtomType        EQU        'nloc'
  47. ;  NodeInfo atom types
  48.  
  49. kQTVRNodeHeaderAtomType            EQU        'ndhd'
  50. kQTVRHotSpotParentAtomType        EQU        'hspa'
  51. kQTVRHotSpotAtomType            EQU        'hots'
  52. kQTVRHotSpotInfoAtomType        EQU        'hsin'
  53. kQTVRLinkInfoAtomType            EQU        'link'
  54. ;  Miscellaneous atom types
  55.  
  56. kQTVRStringAtomType                EQU        'vrsg'
  57. kQTVRPanoSampleDataAtomType        EQU        'pdat'
  58. kQTVRObjectInfoAtomType            EQU        'obji'
  59. kQTVRAngleRangeAtomType            EQU        'arng'
  60. kQTVRTrackRefArrayAtomType        EQU        'tref'
  61. kQTVRPanConstraintAtomType        EQU        'pcon'
  62. kQTVRTiltConstraintAtomType        EQU        'tcon'
  63. kQTVRFOVConstraintAtomType        EQU        'fcon'
  64. ;  Track reference types
  65.  
  66. kQTVRImageTrackRefType            EQU        'imgt'
  67. kQTVRHotSpotTrackRefType        EQU        'hott'
  68. ;  Old hot spot types
  69.  
  70. kQTVRHotSpotNavigableType        EQU        'navg'
  71. ;  Valid bits used in QTVRLinkHotSpotAtom
  72.  
  73. kQTVRValidPan                    EQU        $01
  74. kQTVRValidTilt                    EQU        $02
  75. kQTVRValidFOV                    EQU        $04
  76. kQTVRValidViewCenter            EQU        $08
  77.  
  78. ;  Values for flags field in QTVRPanoSampleAtom
  79.  
  80. kQTVRPanoFlagHorizontal            EQU        $01
  81. kQTVRPanoFlagLast                EQU        $80000000
  82.  
  83. ;  Values for locationFlags field in QTVRNodeLocationAtom
  84.  
  85. kQTVRSameFile                    EQU        0
  86.  
  87. ;  Header for QTVR track's Sample Description record (vrWorld atom container is appended)
  88. QTVRSampleDescription    RECORD 0
  89. descSize                 ds.l    1                ; offset: $0 (0)        ;  total size of the QTVRSampleDescription
  90. descType                 ds.l    1                ; offset: $4 (4)        ;  must be 'qtvr'
  91. reserved1                 ds.l    1                ; offset: $8 (8)        ;  must be zero
  92. reserved2                 ds.w    1                ; offset: $C (12)        ;  must be zero
  93. dataRefIndex             ds.w    1                ; offset: $E (14)        ;  must be zero
  94. data                     ds.l    1                ; offset: $10 (16)        ;  Will be extended to hold vrWorld QTAtomContainer
  95. sizeof                     EQU *                    ; size:   $14 (20)
  96.                         ENDR
  97. ; typedef struct QTVRSampleDescription * QTVRSampleDescriptionPtr
  98.  
  99. ; typedef QTVRSampleDescriptionPtr *    QTVRSampleDescriptionHandle
  100.  
  101.  
  102. ;  =================================================================================================
  103. ;   Definitions and structures used in the VRWorld QTAtomContainer
  104. ;  -------------------------------------------------------------------------------------------------
  105.  
  106.  
  107.  
  108.  
  109. QTVRStringAtom            RECORD 0
  110. stringUsage                 ds.w    1                ; offset: $0 (0)
  111. stringLength             ds.w    1                ; offset: $2 (2)
  112. theString                 ds.b    4                ; offset: $4 (4)        ;  field previously named "string"
  113. sizeof                     EQU *                    ; size:   $8 (8)
  114.                         ENDR
  115. ; typedef struct QTVRStringAtom *        QTVRStringAtomPtr
  116.  
  117.  
  118.  
  119. QTVRWorldHeaderAtom        RECORD 0
  120. majorVersion             ds.w    1                ; offset: $0 (0)
  121. minorVersion             ds.w    1                ; offset: $2 (2)
  122. nameAtomID                 ds.l    1                ; offset: $4 (4)
  123. defaultNodeID             ds.l    1                ; offset: $8 (8)
  124. vrWorldFlags             ds.l    1                ; offset: $C (12)
  125. reserved1                 ds.l    1                ; offset: $10 (16)
  126. reserved2                 ds.l    1                ; offset: $14 (20)
  127. sizeof                     EQU *                    ; size:   $18 (24)
  128.                         ENDR
  129. ; typedef struct QTVRWorldHeaderAtom *    QTVRWorldHeaderAtomPtr
  130.  
  131.  
  132. ;  Valid bits used in QTVRPanoImagingAtom
  133.  
  134. kQTVRValidCorrection            EQU        $01
  135. kQTVRValidQuality                EQU        $02
  136. kQTVRValidDirectDraw            EQU        $04
  137. kQTVRValidFirstExtraProperty    EQU        $08
  138. QTVRPanoImagingAtom        RECORD 0
  139. majorVersion             ds.w    1                ; offset: $0 (0)
  140. minorVersion             ds.w    1                ; offset: $2 (2)
  141. imagingMode                 ds.l    1                ; offset: $4 (4)
  142. imagingValidFlags         ds.l    1                ; offset: $8 (8)
  143. correction                 ds.l    1                ; offset: $C (12)
  144. quality                     ds.l    1                ; offset: $10 (16)
  145. directDraw                 ds.l    1                ; offset: $14 (20)
  146. imagingProperties         ds.l    6                ; offset: $18 (24)        ;  for future properties
  147. reserved1                 ds.l    1                ; offset: $30 (48)
  148. reserved2                 ds.l    1                ; offset: $34 (52)
  149. sizeof                     EQU *                    ; size:   $38 (56)
  150.                         ENDR
  151. ; typedef struct QTVRPanoImagingAtom *    QTVRPanoImagingAtomPtr
  152.  
  153. QTVRNodeLocationAtom    RECORD 0
  154. majorVersion             ds.w    1                ; offset: $0 (0)
  155. minorVersion             ds.w    1                ; offset: $2 (2)
  156. nodeType                 ds.l    1                ; offset: $4 (4)
  157. locationFlags             ds.l    1                ; offset: $8 (8)
  158. locationData             ds.l    1                ; offset: $C (12)
  159. reserved1                 ds.l    1                ; offset: $10 (16)
  160. reserved2                 ds.l    1                ; offset: $14 (20)
  161. sizeof                     EQU *                    ; size:   $18 (24)
  162.                         ENDR
  163. ; typedef struct QTVRNodeLocationAtom *    QTVRNodeLocationAtomPtr
  164.  
  165.  
  166. ;  =================================================================================================
  167. ;   Definitions and structures used in the Nodeinfo QTAtomContainer
  168. ;  -------------------------------------------------------------------------------------------------
  169.  
  170.  
  171.  
  172. QTVRNodeHeaderAtom        RECORD 0
  173. majorVersion             ds.w    1                ; offset: $0 (0)
  174. minorVersion             ds.w    1                ; offset: $2 (2)
  175. nodeType                 ds.l    1                ; offset: $4 (4)
  176. nodeID                     ds.l    1                ; offset: $8 (8)
  177. nameAtomID                 ds.l    1                ; offset: $C (12)
  178. commentAtomID             ds.l    1                ; offset: $10 (16)
  179. reserved1                 ds.l    1                ; offset: $14 (20)
  180. reserved2                 ds.l    1                ; offset: $18 (24)
  181. sizeof                     EQU *                    ; size:   $1C (28)
  182.                         ENDR
  183. ; typedef struct QTVRNodeHeaderAtom *    QTVRNodeHeaderAtomPtr
  184.  
  185. QTVRAngleRangeAtom        RECORD 0
  186. minimumAngle             ds        Float32            ; offset: $0 (0)
  187. maximumAngle             ds        Float32            ; offset: $4 (4)
  188. sizeof                     EQU *                    ; size:   $8 (8)
  189.                         ENDR
  190. ; typedef struct QTVRAngleRangeAtom *    QTVRAngleRangeAtomPtr
  191.  
  192. QTVRHotSpotInfoAtom        RECORD 0
  193. majorVersion             ds.w    1                ; offset: $0 (0)
  194. minorVersion             ds.w    1                ; offset: $2 (2)
  195. hotSpotType                 ds.l    1                ; offset: $4 (4)
  196. nameAtomID                 ds.l    1                ; offset: $8 (8)
  197. commentAtomID             ds.l    1                ; offset: $C (12)
  198. cursorID                 ds.l    3                ; offset: $10 (16)
  199. ;  canonical view for this hot spot
  200. bestPan                     ds        Float32            ; offset: $1C (28)
  201. bestTilt                 ds        Float32            ; offset: $20 (32)
  202. bestFOV                     ds        Float32            ; offset: $24 (36)
  203. bestViewCenter             ds        QTVRFloatPoint ; offset: $28 (40)
  204. ;  Bounding box for this hot spot
  205. hotSpotRect                 ds        Rect            ; offset: $30 (48)
  206. flags                     ds.l    1                ; offset: $38 (56)
  207. reserved1                 ds.l    1                ; offset: $3C (60)
  208. reserved2                 ds.l    1                ; offset: $40 (64)
  209. sizeof                     EQU *                    ; size:   $44 (68)
  210.                         ENDR
  211. ; typedef struct QTVRHotSpotInfoAtom *    QTVRHotSpotInfoAtomPtr
  212.  
  213. QTVRLinkHotSpotAtom        RECORD 0
  214. majorVersion             ds.w    1                ; offset: $0 (0)
  215. minorVersion             ds.w    1                ; offset: $2 (2)
  216. toNodeID                 ds.l    1                ; offset: $4 (4)
  217. fromValidFlags             ds.l    1                ; offset: $8 (8)
  218. fromPan                     ds        Float32            ; offset: $C (12)
  219. fromTilt                 ds        Float32            ; offset: $10 (16)
  220. fromFOV                     ds        Float32            ; offset: $14 (20)
  221. fromViewCenter             ds        QTVRFloatPoint ; offset: $18 (24)
  222. toValidFlags             ds.l    1                ; offset: $20 (32)
  223. toPan                     ds        Float32            ; offset: $24 (36)
  224. toTilt                     ds        Float32            ; offset: $28 (40)
  225. toFOV                     ds        Float32            ; offset: $2C (44)
  226. toViewCenter             ds        QTVRFloatPoint ; offset: $30 (48)
  227. distance                 ds        Float32            ; offset: $38 (56)
  228. flags                     ds.l    1                ; offset: $3C (60)
  229. reserved1                 ds.l    1                ; offset: $40 (64)
  230. reserved2                 ds.l    1                ; offset: $44 (68)
  231. sizeof                     EQU *                    ; size:   $48 (72)
  232.                         ENDR
  233. ; typedef struct QTVRLinkHotSpotAtom *    QTVRLinkHotSpotAtomPtr
  234.  
  235.  
  236. ;  =================================================================================================
  237. ;   Definitions and structures used in Panorama and Object tracks
  238. ;  -------------------------------------------------------------------------------------------------
  239.  
  240.  
  241.  
  242. QTVRPanoSampleAtom        RECORD 0
  243. majorVersion             ds.w    1                ; offset: $0 (0)
  244. minorVersion             ds.w    1                ; offset: $2 (2)
  245. imageRefTrackIndex         ds.l    1                ; offset: $4 (4)        ;  track reference index of the full res image track
  246. hotSpotRefTrackIndex     ds.l    1                ; offset: $8 (8)        ;  track reference index of the full res hot spot track
  247. minPan                     ds        Float32            ; offset: $C (12)
  248. maxPan                     ds        Float32            ; offset: $10 (16)
  249. minTilt                     ds        Float32            ; offset: $14 (20)
  250. maxTilt                     ds        Float32            ; offset: $18 (24)
  251. minFieldOfView             ds        Float32            ; offset: $1C (28)
  252. maxFieldOfView             ds        Float32            ; offset: $20 (32)
  253. defaultPan                 ds        Float32            ; offset: $24 (36)
  254. defaultTilt                 ds        Float32            ; offset: $28 (40)
  255. defaultFieldOfView         ds        Float32            ; offset: $2C (44)
  256. ;  Info for highest res version of image track
  257. imageSizeX                 ds.l    1                ; offset: $30 (48)        ;  pixel width of the panorama (e.g. 768)
  258. imageSizeY                 ds.l    1                ; offset: $34 (52)        ;  pixel height of the panorama (e.g. 2496)
  259. imageNumFramesX             ds.w    1                ; offset: $38 (56)        ;  diced frames wide (e.g. 1)
  260. imageNumFramesY             ds.w    1                ; offset: $3A (58)        ;  diced frames high (e.g. 24)
  261. ;  Info for highest res version of hotSpot track
  262. hotSpotSizeX             ds.l    1                ; offset: $3C (60)        ;  pixel width of the hot spot panorama (e.g. 768)
  263. hotSpotSizeY             ds.l    1                ; offset: $40 (64)        ;  pixel height of the hot spot panorama (e.g. 2496)
  264. hotSpotNumFramesX         ds.w    1                ; offset: $44 (68)        ;  diced frames wide (e.g. 1)
  265. hotSpotNumFramesY         ds.w    1                ; offset: $46 (70)        ;  diced frames high (e.g. 24)
  266. flags                     ds.l    1                ; offset: $48 (72)
  267. reserved1                 ds.l    1                ; offset: $4C (76)
  268. reserved2                 ds.l    1                ; offset: $50 (80)
  269. sizeof                     EQU *                    ; size:   $54 (84)
  270.                         ENDR
  271. ; typedef struct QTVRPanoSampleAtom *    QTVRPanoSampleAtomPtr
  272.  
  273. ;  Special resolution value for the FastStart low resolution image track
  274.  
  275. kQTVRFastStartTrackRes            EQU        $8000
  276. QTVRTrackRefEntry        RECORD 0
  277. trackRefType             ds.l    1                ; offset: $0 (0)
  278. trackResolution             ds.w    1                ; offset: $4 (4)
  279. trackRefIndex             ds.l    1                ; offset: $6 (6)
  280. sizeof                     EQU *                    ; size:   $A (10)
  281.                         ENDR
  282.  
  283. ;  =================================================================================================
  284. ;   Object File format 2.0
  285. ;  -------------------------------------------------------------------------------------------------
  286.  
  287.  
  288.  
  289. kQTVRObjectAnimateViewFramesOn    EQU        $01
  290. kQTVRObjectPalindromeViewFramesOn EQU    $02
  291. kQTVRObjectStartFirstViewFrameOn EQU    $04
  292. kQTVRObjectAnimateViewsOn        EQU        $08
  293. kQTVRObjectPalindromeViewsOn    EQU        $10
  294. kQTVRObjectSyncViewToFrameRate    EQU        $20
  295. kQTVRObjectDontLoopViewFramesOn    EQU        $40
  296.  
  297. kQTVRObjectWrapPanOn            EQU        $01
  298. kQTVRObjectWrapTiltOn            EQU        $02
  299. kQTVRObjectCanZoomOn            EQU        $04
  300. kQTVRObjectReverseHControlOn    EQU        $08
  301. kQTVRObjectReverseVControlOn    EQU        $10
  302. kQTVRObjectSwapHVControlOn        EQU        $20
  303. kQTVRObjectTranslationOn        EQU        $40
  304.  
  305. kGrabberScrollerUI                EQU        1                    ; "Object" 
  306. kOldJoyStickUI                    EQU        2                    ;  "1.0 Object as Scene"     
  307. kJoystickUI                        EQU        3                    ; "Object In Scene"
  308. kGrabberUI                        EQU        4                    ; "Grabber only"
  309. kAbsoluteUI                        EQU        5                    ; "Absolute pointer"
  310.  
  311. QTVRObjectSampleAtom    RECORD 0
  312. majorVersion             ds.w    1                ; offset: $0 (0)        ;  kQTVRMajorVersion
  313. minorVersion             ds.w    1                ; offset: $2 (2)        ;  kQTVRMinorVersion
  314. movieType                 ds.w    1                ; offset: $4 (4)        ;  ObjectUITypes
  315. viewStateCount             ds.w    1                ; offset: $6 (6)        ;  The number of view states 1 based
  316. defaultViewState         ds.w    1                ; offset: $8 (8)        ;  The default view state number. The number must be 1 to viewStateCount
  317. mouseDownViewState         ds.w    1                ; offset: $A (10)        ;  The mouse down view state.   The number must be 1 to viewStateCount
  318. viewDuration             ds.l    1                ; offset: $C (12)        ;  The duration of each view including all animation frames in a view
  319. columns                     ds.l    1                ; offset: $10 (16)        ;  Number of columns in movie
  320. rows                     ds.l    1                ; offset: $14 (20)        ;  Number rows in movie
  321. mouseMotionScale         ds        Float32            ; offset: $18 (24)        ;  180.0 for kStandardObject or kQTVRObjectInScene, actual degrees for kOldNavigableMovieScene.
  322. minPan                     ds        Float32            ; offset: $1C (28)        ;  Start   horizontal pan angle in degrees
  323. maxPan                     ds        Float32            ; offset: $20 (32)        ;  End     horizontal pan angle in degrees
  324. defaultPan                 ds        Float32            ; offset: $24 (36)        ;  Initial horizontal pan angle in degrees (poster view)
  325. minTilt                     ds        Float32            ; offset: $28 (40)        ;  Start   vertical   pan angle in degrees
  326. maxTilt                     ds        Float32            ; offset: $2C (44)        ;  End     vertical   pan angle in degrees
  327. defaultTilt                 ds        Float32            ; offset: $30 (48)        ;  Initial vertical   pan angle in degrees (poster view)    
  328. minFieldOfView             ds        Float32            ; offset: $34 (52)        ;  minimum field of view setting (appears as the maximum zoom effect) must be >= 1
  329. fieldOfView                 ds        Float32            ; offset: $38 (56)        ;  the field of view range must be >= 1
  330. defaultFieldOfView         ds        Float32            ; offset: $3C (60)        ;  must be in minFieldOfView and maxFieldOfView range inclusive
  331. defaultViewCenterH         ds        Float32            ; offset: $40 (64)
  332. defaultViewCenterV         ds        Float32            ; offset: $44 (68)
  333. viewRate                 ds        Float32            ; offset: $48 (72)
  334. frameRate                 ds        Float32            ; offset: $4C (76)
  335. animationSettings         ds.l    1                ; offset: $50 (80)        ;  32 reserved bit fields
  336. controlSettings             ds.l    1                ; offset: $54 (84)        ;  32 reserved bit fields
  337. sizeof                     EQU *                    ; size:   $58 (88)
  338.                         ENDR
  339. ; typedef struct QTVRObjectSampleAtom *    QTVRObjectSampleAtomPtr
  340.  
  341.     IF OLDROUTINENAMES THEN
  342. VRStringAtom            RECORD 0
  343. f                         ds        QTVRStringAtom
  344. sizeof                     EQU *                    ; size:   $8 (8)
  345.                         ENDR
  346.  
  347.  
  348. VRWorldHeaderAtom        RECORD 0
  349. f                         ds        QTVRWorldHeaderAtom
  350. sizeof                     EQU *                    ; size:   $18 (24)
  351.                         ENDR
  352.  
  353.  
  354. VRPanoImagingAtom        RECORD 0
  355. f                         ds        QTVRPanoImagingAtom
  356. sizeof                     EQU *                    ; size:   $38 (56)
  357.                         ENDR
  358.  
  359.  
  360. VRNodeLocationAtom        RECORD 0
  361. f                         ds        QTVRNodeLocationAtom
  362. sizeof                     EQU *                    ; size:   $18 (24)
  363.                         ENDR
  364.  
  365.  
  366. VRNodeHeaderAtom        RECORD 0
  367. f                         ds        QTVRNodeHeaderAtom
  368. sizeof                     EQU *                    ; size:   $1C (28)
  369.                         ENDR
  370.  
  371.  
  372. VRAngleRangeAtom        RECORD 0
  373. f                         ds        QTVRAngleRangeAtom
  374. sizeof                     EQU *                    ; size:   $8 (8)
  375.                         ENDR
  376.  
  377.  
  378. VRHotSpotInfoAtom        RECORD 0
  379. f                         ds        QTVRHotSpotInfoAtom
  380. sizeof                     EQU *                    ; size:   $44 (68)
  381.                         ENDR
  382.  
  383.  
  384. VRLinkHotSpotAtom        RECORD 0
  385. f                         ds        QTVRLinkHotSpotAtom
  386. sizeof                     EQU *                    ; size:   $48 (72)
  387.                         ENDR
  388.  
  389.  
  390. VRPanoSampleAtom        RECORD 0
  391. f                         ds        QTVRPanoSampleAtom
  392. sizeof                     EQU *                    ; size:   $54 (84)
  393.                         ENDR
  394.  
  395.  
  396. VRTrackRefEntry            RECORD 0
  397. f                         ds        QTVRTrackRefEntry
  398. sizeof                     EQU *                    ; size:   $A (10)
  399.                         ENDR
  400.  
  401.  
  402. VRObjectSampleAtom        RECORD 0
  403. f                         ds        QTVRObjectSampleAtom
  404. sizeof                     EQU *                    ; size:   $58 (88)
  405.                         ENDR
  406.  
  407.  
  408.     ENDIF    ; OLDROUTINENAMES
  409.  
  410.  
  411.     ENDIF ; __QUICKTIMEVRFORMAT__ 
  412.  
  413.